﻿<?php
/**
 * 消费交易-前台
 * @param out_trade_no 我们平台的订单号
 * @param total_fee    订单金额 联票的话可以不传 反正也会重新取
 * @param subject      订单描述 为空的话也会重新取
 */

header ( 'Content-type:text/html;charset=utf-8' );
/*支付时需要的参数生成地址什么的乱七八糟的东西*/
include_once './func/common.php';
include_once './func/SDKConfig.php';
include_once './func/secureUtil.php';
//include_once './func/log.class.php';

define('ROOT_PATH', '/var/www/html/');
require_once("/var/www/html/new/conf/le.je");
include(ROOT_PATH . "new/d/class/OrderRecord.php");
$le=new go_sql();
$le->connect();
$soap = new SoapClient(null,array(
        "location" => "http://localhost/open/openService/pft_insideMX.php",
        "uri" => "www.16u.com?ac_16u=16ucom|pw_16u=c33367701511b4f6020ec61ded352059|auth_16u=true")
);
//订单号
$out_trade_no = $_REQUEST['ordernum']+0;
// 传过来的金额单位是元 记到pft_alipay_rec里的单位也是元 但是银联要求的单位是分
//$total_fee = $_REQUEST['total_fee'];

/* ----------- 模拟数据写在这里 ---------*/
//$out_trade_no = 1240020;
//$total_fee = 240;
$or    = new OrderRecord($out_trade_no,$soap);
$order = $or->info();
if($_GET['cs']){
    echo "<pre>";
    print_r($order);
    var_dump($order['totalPrice']/100);
    exit;
}
//goto one;
if(!$order){
    echo '<script>alert("不存在此订单");history.go(-1)</script>';
    exit;
}

if((int)$order['mainOrder']->UUpaystatus != 2){
    echo '<script>alert("该订单不需要支付");history.go(-1)</script>';
    exit;
}
$tid = (int)$order['mainOrder']->UUtid;
$sql = "select cancel_auto_onMin from uu_jq_ticket where id=$tid limit 1";
$GLOBALS['le']->query($sql);
$GLOBALS['le']->fetch_assoc();
$effTime =  $GLOBALS['le']->f('cancel_auto_onMin');
if(time()-strtotime((string)$order['mainOrder']->UUordertime)>$effTime*60){
    echo '<script>alert("订单已过'.$effTime.'分钟的支付期限");history.go(-1)</script>';
    $GLOBALS['le']->close();
    exit;
}
$orderTimeout = $effTime*60*1000;
$payTimeout = date('YmdHis',$effTime*60+strtotime((string)$order['mainOrder']->UUordertime));
/*  平台现有的支付方式都是不传价钱的 我这也改掉不用传了 虽然本来要别人传个我自己能取到的值也没什么意义...
if((int)$order['mainOrder']->UUconcat_id == 0 && (int)$order['totalPrice']/100 != $total_fee){
    echo '<script>alert("订单金额有误");history.go(-1)</script>';
    //不是联票的订单 传过来的金额要和这个类里算出来的相等
    exit;
}
if((int)$order['mainOrder']->UUconcat_id != 0)
*/
$total_fee = (int)$order['totalPrice']/100;
//订单的景区标题+票标题
$subject = $_POST['subject'] ? $_POST['subject'] : (string)$order['mainOrder']->UUltitle.'-'.(string)$order['mainOrder']->UUttitle;

$merID = 802350173720081;
$bizType = '000201';
if($_POST['GuangXi_mark']==1){//B2C 943030147330001 B2B 943030149000001
    $merID = 943030147330001;
}
//sourceT=2 表示订单是通过银联支付的
$str="select id from pft_alipay_rec where out_trade_no='$out_trade_no' /*AND sourceT=2*/ LIMIT 1";
$GLOBALS['le']->query($str);
if (!$GLOBALS['le']->fetch_assoc()) {
    $str=<<<SQL
INSERT INTO pft_alipay_rec SET out_trade_no='$out_trade_no',
seller_email='$merID',buyer_email='',
subject='$subject',total_fee='$total_fee',description='',
show_url='',sourceT=2
SQL;
}
else {
    $str=<<<SQL
update pft_alipay_rec set seller_email='$merID',
buyer_email='',subject='$subject',total_fee='$total_fee',
description='$body',show_url='',
royalty_parameters='',sourceT=2
where out_trade_no='$out_trade_no' LIMIT 1
SQL;
}
$GLOBALS['le']->query($str);
$GLOBALS['le']->close();
//one:
$total_fee = $total_fee*100;
//echo $total_fee;exit;
$params = array(
    'version' => '5.0.0',				//版本号
    'encoding' => 'utf-8',				//编码方式
    'certId' => getSignCertId (),			//证书ID
    'txnType' => '01',				//交易类型
    'txnSubType' => '01',				//交易子类
    'bizType' => $bizType,				//业务类型
    'frontUrl' =>  SDK_FRONT_NOTIFY_URL,  		//前台通知地址
    'backUrl' => SDK_BACK_NOTIFY_URL,		//后台通知地址
    'signMethod' => '01',		//签名方法
    'channelType' => '08',		//渠道类型，07-PC，08-手机
    'accessType' => '0',		//接入类型
    'merId' => $merID,//票付通的商户代码
    'orderId' => 'PFT'.$out_trade_no,	//商户订单号
    'txnTime' => date('YmdHis'),	//订单发送时间
    'txnAmt' => $total_fee,		//交易金额，单位分
    'currencyCode' => '156',	//交易币种
    'defaultPayType' => '0001',	//默认支付方式
    //'orderDesc' => '订单描述',  //订单描述，网关支付和wap支付暂时不起作用
    'reqReserved' =>' 透传信息', //请求方保留域，透传字段，查询、通知、对账文件中均会原样出现
//    'orderTimeout' => (int)$orderTimeout
    'payTimeout'=>$payTimeout//支付超时时间 超时后 支付会失败 支付金额会退回到客户账户
);


// 签名
sign( $params );
//echo json_encode($params);exit;
//if($_SESSION['sid']==28949){
//    echo "<pre>";
//    print_r($params);exit;
//}
// 前台请求地址
$front_uri = SDK_FRONT_TRANS_URL;
// $log->LogInfo ( "前台请求地址为>" . $front_uri );
// 构造 自动提交的表单
$html_form = create_html( $params, $front_uri );

// $log->LogInfo ( "-------前台交易自动提交表单>--begin----" );
// $log->LogInfo ( $html_form );
// $log->LogInfo ( "-------前台交易自动提交表单>--end-------" );
// $log->LogInfo ( "============处理前台请求 结束===========" );
echo $html_form;
